FAQ
F.A.Q.
Domande - Risposte
Posso controllare l' esistenza di campi vuoti con ASP ?
Internet Provider
Software
Internet Provider
mail marketing
preventivi Internet
supporto tecnico
sms da web
download
corsi
lavoro
pagamenti
Internet Provider
 
FAQ
faq
news
Applicativi asp
Motomania

Posso controllare l' esistenza di campi vuoti con ASP ?

Parallelamente al controllo che si potrebbe attivare con JavaScript sui campi di un form, la stessa cosa vale per la tecnologia ASP. È possibile verificare se un campo di un form contiene dati effettuando il confronto del valore del campo con una stringa di lunghezza zero. Per l' esempio odierno, ho preparato 3 campi nei quali si deve inserire il nome, il cognome e l' indirizzo email. Una cosa molto semplice ma che ci serve per capire come funziona questo controllo.

Qual' è il principio: se un utente non riempie un campo, verrà inviato ad una seconda pagina e verrà visualizzato a video il messaggio di avvertimento. Altrimenti, nella stessa pagina, un altro messaggio lo avverte che il tutto è andato a buon fine. Cosa ci serve per questo esempio: due pagine [pagina1.asp e pagina2.asp], minima conoscenza di VBScript oltre ai CSS per la realizzazione del form.

La pagina con il form

La prima pagina che raccoglie i dati [pagina1.asp], contiene un semplice form con 3 campi ed un pulsante di invio. Non mi soffermo sulla realizzazione del form in quanto questo argomento è stato trattato più di una volta. Possiamo vedere la pagina di esempio, al momento NON FUNZIONANTE. In seguito verrà indicato quale codice inserire. Dopo che abbiamo popolato i 3 campi verremo inviati ad una seconda pagina [pagina2.asp] appunto; quindi l' action del form sarà:

<form name="frm" id="frm" action="pagina2.asp" method="post">

La pagina di destinazione

La pagina di destinazione è quella che ha un pò di codice VBScript; e noi vedremo proprio questo codice per capire come è stata realizzata. Essa contiene una SUBROUTINE. Una SUBROUTINE contiene righe di codice che eseguono un compito preciso; per esempio, come nel nostro caso, un messaggio. L' uso delle SUBROUTINE rende molto semplice il riutilizzo di sezioni di codice. Essa comincia con l' istruzione SUB e termina con l' istruzione END SUB. Prima di qualsiasi altro codice, in pagina2.asp, dobbiamo inserire quanto segue:

<%@LANGUAGE="VBSCRIPT"%>
<%
SUB errorForm(theError)
%>

Abbiamo istanziato la SUBROUTINE. Nel <body> la si deve richiamare: basta inserire il seguente codice:

<%=theError%>

seguita dal form che ci riporta alla prima pagina, nel caso in cui un campo è vuoto. Il codice del form sarà:

<form method="post" action="pagina1.asp">
<input type="button" value="Ritorna" />
</form>

Al di sotto del tag </body>, sempre nella seconda pagina, si deve chiudere la SUBROUTINE e si devono recuperare i valori dei campi immessi. Per cui avremo:

<%
response.End
end SUB
' recupero i campi del form
nome = trim(request.Form("nome"))
cognome = trim(request.Form("cognome"))
email = trim(request.Form("email"))

Per prima cosa chiudiamo la SUBROUTINE e poi procediamo con il recupero dei campi del form. L' operazione successiva sarà quella di presentare a video il messaggio di errore. Scvrivendo di seguito al codice sovrastante avremo:

' verifica dei campi richiesti
if nome = "" then
errorForm "Non è stato inserito il nome"
end if
if cognome = "" then
errorForm "Non è stato inserito il cognome"
end if
if email = "" then
errorForm "Non è stato inserito un indirizzo email"
end if
%>

Tutto quanto fin qui descritto potrebbe essere sufficente per mettere in pratica le nostre due pagine. Però c' è qualcosa che andrebbe ancora sistemato. Vi è mai capitato di dover scrivere dati un un form, arrivare al termine ed accorgersi che qualcosa non è corretto e dover tornare indietro? I dati inseriti precedentemente non ci sono più. Molto irritante la cosa, o no? Quello che faremo adesso è fare in modo che se un campo su tre non è popolato, quando ritorniamo nella prima pagina, gli altri due non devono andare "perduti". Quindi dobbiamo riprendere la seconda pagina, dal punto in cui l' abbiamo lasciata prima ed aggiungere il codice seguente:

<% for each item in request.Form %>
<input name= "<%=item%>" type="hidden" value="<%=server.HTMLEncode (request.Form(item))%>" />
<% next %>

Il codice completo diventa:

<body>
<%=theError%>
<form method="post" action="pagina1.asp">
<% for each item in request.Form %>
<input name= "<%=item%>" type="hidden" value="<%=server.HTMLEncode (request.Form(item))%>" />
<% next %>
<p><input type="button" value="Ritorna" id="invia" /></p>
</form>
</body>
 

La pagina è stata modificata affinchè venissero ripristinati tutti i dati che l' utente ha inserito; subito dopo l' apertura del form, si deve inserire uno script che crea dei campi nascosti per ognuno degli elementi della Collection Form. Nel momento in cui un utente clicca sul pulsante INVIA, in quello stesso istante i dati vengono "mantenuti" nella prima pagina.

È stato usato il metodo HTMLEncode() dell' oggetto Server per codificare il contenuto dell' attributo VALUE del campo del modulo nascosto. Questo è necessario per evitare errori nel caso in cui un utente immetta virgolette o altri caratteri speciali. Sarà anche necessario modificare la prima pagina, affinchè i dati inseriti riappaiano nel modulo. Basta assegnare un valore predefinito ad ognuno dei tre campi del form. Il codice completo della prima pagina contenente il form diventa:

<body>
<form action="pagina2.asp" method="post">
Nome:<input type="text" value="<%=server.HTMLEncode(nome)%>" />
Cognome:<input type="text" value="<%=server.HTMLEncode(cognome)%>" />
Email:<input type="text" value="<%=server.HTMLEncode(email)%>" />
<input type="submit" value="Invia" id="invia" />
</form>
</body>

 


faq Indietro

 

Home | Chi Siamo | Contatti | Internet Provider | Software House | Active Web | Web Marketing | SMS | Realizzazioni | Preventivi | Supporto | Lavoro | Condizioni
RD Informatica - Str. Rupola 14 - 61122 Pesaro PU - Tel 0721 206238 Fax 0721 1835042 P.Iva 01241970415 - info@rdinformatica.com 
Estrattore Pagine Gialle
Applicativi asp
RD
Applicativi asp
Internet provider
Software House
Applicativi asp
SMS Web
Software SMS
Mailing Project